/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package in.co.sneh.controller.FileUploadServlet;

import com.csvreader.CsvReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;

public class Leercsvexpe {
    int aux =0;
    StringBuilder fallas= new StringBuilder();

    public static void imp(String x) {
        System.out.println(x);
        
    }

    public Leercsvexpe(String ruta) throws IOException {
    
            CsvReader expedientes = new CsvReader(ruta);
            expedientes.readHeaders();
            ReglasVerificacion reglas=new ReglasVerificacion();
            String Fecha_Vuelo;
            String compania;
            String Vuelo;
            String Aeropuerto;
            String Hora_entrada_corral;
            String Hora_salida_corral;
            String Tiempo_Total_TEF;
            String Corral;
            String Negocio;
            int contador_null = 0;
            int contador_fallas=0;
            int contador_fila=0;
            
            StringBuilder nulas= new StringBuilder();


        
            while (expedientes.readRecord()) {
                
                String todo[] = expedientes.getRawRecord().split(",");
              //  Fecha_Vuelo = expedientes.get("Fecha Vuelo");
                Fecha_Vuelo=todo[0];
               // System.out.println(Fecha_Vuelo);
                if (Fecha_Vuelo.length() == 0) {
                    Fecha_Vuelo = "NULL";
                    contador_null++;
                    fallas.append("nula numero "+contador_null+" en Fecha Vuelo en fila numero "+contador_fila+ "\n");
                }else
                if (!reglas.Fecha_Vuelo(Fecha_Vuelo)){
                contador_fallas++;
                fallas.append("Falla numero "+contador_fallas+" en Fecha Vuelo en fila numero "+contador_fila+ "\n");
                }
                
                //compania = expedientes.get("Compañia");
                compania=todo[1];
                if (compania.length() == 0) {
                    compania = "NULL";
                    contador_null++;
                    fallas.append("nula numero "+contador_null+" en compania en fila numero "+contador_fila+ "\n");
                }else
                 if (!reglas.compania(compania)){
                contador_fallas++;
                fallas.append("Falla numero "+contador_fallas+" en compania en fila numero "+contador_fila+ "\n");
                }
                //Vuelo = expedientes.get("Vuelo");
                Vuelo=todo[2];
                if (Vuelo.length() == 0) {
                    Vuelo = "NULL";
                    contador_null++;
                    fallas.append("nula numero "+contador_null+" en Vuelo en fila numero "+contador_fila+ "\n");
                }else
                 if (!reglas.Vuelo(Vuelo)){
                contador_fallas++;
                fallas.append("Falla numero "+contador_fallas+" en Vuelo en fila numero "+contador_fila+ "\n");
                 }
                
                   //Aeropuerto = expedientes.get("Aeropuerto");
                Aeropuerto=todo[3];
                if (Aeropuerto.length() == 0) {
                    Aeropuerto = "NULL";
                    contador_null++;
                    fallas.append("nula numero "+contador_null+" en Aeropuerto en fila numero "+contador_fila+ "\n");
                }else
                 if (!reglas.Aeropuerto(Aeropuerto)){
                contador_fallas++;
                fallas.append("Falla numero "+contador_fallas+" en Aeropuerto en fila numero "+contador_fila+ "\n");
                
                
                }
               
                //Hora_entrada_corral = expedientes.get("Hora entrada a Corral");
                Hora_entrada_corral=todo[4]; 
                if (Hora_entrada_corral.length() == 0) {
                    Hora_entrada_corral = "NULL";
                    contador_null++;
                    fallas.append("nula numero "+contador_null+" en Hora entrada corral en fila numero "+contador_fila+ "\n");
                }else
                 if (!reglas.Hora_entrada(Hora_entrada_corral)){
                contador_fallas++;
                fallas.append("Falla numero "+contador_fallas+" en Hora entrada corral en fila numero "+contador_fila+ "\n");
                }
                
                //Hora_salida_corral = expedientes.get("Hora salida corral");
                Hora_salida_corral=todo[5];
                if (Hora_salida_corral.length() == 0 || Hora_salida_corral=="") {
                    Hora_salida_corral = "NULL";
                    contador_null++;
                    fallas.append("nula numero "+contador_null+" en Hora_salida_corral en fila numero "+contador_fila+ "\n");
                }else
                 if (!reglas.Hora_salida(Hora_salida_corral)){
                contador_fallas++;
                fallas.append("Falla numero "+contador_fallas+" en Hora salida corral en fila numero "+contador_fila+ "\n");
                }
                
               // Tiempo_Total_TEF = expedientes.get("Tiempo Total TEF");
                Tiempo_Total_TEF=todo[6];
                if (Tiempo_Total_TEF.length() == 0) {
                    Tiempo_Total_TEF = "NULL";
                    contador_null++;
                    fallas.append("nula numero "+contador_null+" en tiempo total TEF en fila numero "+contador_fila+ "\n");
                }else
                    if (!reglas.Tiempo_tef(Tiempo_Total_TEF)){
                contador_fallas++;
                fallas.append("Falla numero "+contador_fallas+" en tiempo total tef numero "+contador_fila+ "\n");
                }
                    
               //  Corral = expedientes.get("Corral");
                Corral=todo[7];
                if (Corral.length() == 0) {
                    Corral = "NULL";
                    contador_null++;
                    fallas.append("nula numero "+contador_null+" en Corral en fila numero "+contador_fila+ "\n");
                }else
                 if (!reglas.corral(Corral)){
                contador_fallas++;
                fallas.append("Falla numero "+contador_fallas+" en corral en fila numero "+contador_fila+ "\n");
                }
                
                //Negocio = expedientes.get("Negocio");
                Negocio=todo[8];
                if (Negocio.length() == 0) {
                    Negocio = "NULL";
                    contador_null++;
                    fallas.append("nula numero "+contador_null+" en Negocio en fila numero "+contador_fila+ "\n");
                }else
                 if (!reglas.Negocio(Negocio)){
                contador_fallas++;
                fallas.append("Falla numero "+contador_fallas+" en Negocio en fila numero "+contador_fila+ "\n");
                }
                
                contador_fila++;
                //System.out.println(contador_fila);
                //System.out.println(fallas);
               // System.out.println("\n \n \n \n \n -------------------------------------------------------------------------------------------------------------");
             
            }
         //  System.out.println(fallas);

            
            expedientes.close();
        }

public StringBuilder fallas(){
    return fallas;
}
  
}
